<?php

namespace App\Utils\Adapter\Interfaces;

interface MapAdapter
{

    /**
     * ip定位
     * @param $ip
     * @return mixed
     */
    public function position($ip);


    /**
     * 逆地理编码
     * @param $address
     * @return mixed
     */
    public function getLocation($address);


    /**
     * 步行导航
     * @param $startPoint
     * @param $endPoint
     * @return mixed
     */
    public function walkRouting($startPoint,$endPoint);

    /**
     * 公交导航
     * @param $startPoint
     * @param $endPoint
     * @return mixed
     */
    public function busRouting($startPoint,$endPoint);

    /**
     * 驾驶导航
     * @param $startPoint
     * @param $endPoint
     * @return mixed
     */
    public function drivingRouting($startPoint,$endPoint);

    /**
     * 骑行导航
     * @param $startPoint
     * @param $endPoint
     * @return mixed
     */
    public function bicyclingRouting($startPoint,$endPoint);

    /**
     * 距离测试
     * @param $startPoint
     * @param $endPoint
     * @return mixed
     *  @throws \InvalidArgumentException
    */
    public function distance($startPoint,$endPoint);


    public function opi($startPoint,$endPoint,$radius);

}
